#include <iostream>

using namespace std;


class Student {
public:
    // 1. 静态成员变量生命周期是整个程序, 作用域在类内
    static int value;

    int age = 19;

public:
    // 5.静态函数只能访问静态变量, 不能访问成员变量
    static void function1() {
        cout << "value = " << value << endl;
    }

    // 6.成员函数可以访问成员变量, 也可以访问静态变量
    void function2() {
        cout << "age = " << age;
        cout << "value = " << value;
    }

};

// 2. 静态成员变量要在类内声明, 类为初始化
int Student::value = 100;

void test01() {
    // 3. 静态成员变量属于类, 不属于对象, 是所有对象共享的
    cout << Student::value << endl;

    // 4. 对象也可以访问静态成员变量
    Student student;
    cout << student.value;
}

class Teacher {
public:
    // 1. 静态成员变量生命周期是整个程序, 作用域在类内
    static int value;

    int age = 19;

public:
    // 5.静态函数只能访问静态变量, 不能访问成员变量
    static void function1() {
        cout << "value = " << value << endl;
    }

    // 6.成员函数可以访问成员变量, 也可以访问静态变量
    void function2() {
        cout << "age = " << age;
        cout << "value = " << value;
    }

};

int main() {
    test01();

    return 0;
}